剛剛發現在生命週期的viewWillDisappear
裡有刪除時鐘的方法,卻沒有恢復計時器的方法導致時中暫停,我們來看看 AI如和處裡?
如何在保留 disapper 的情況下 使時間停止不會出現
// 添加一個標誌來記錄定時器狀態
private var timerWasRunning = false
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// 記錄定時器狀態並停止定時器
timerWasRunning = timer != nil
timer?.invalidate()
timer = nil
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 如果定時器之前正在運行,則重新啟動
if timerWasRunning || timer == nil {
startTimeUpdater()
}
// 無論如何都更新一次時間,確保顯示最新時間
updateTimeLabel()
}